package chapter07

/**
 * Created with IntelliJ IDEA.
 * ClassName: Test05_List
 * Package: chapter07
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 *          Date: 2023-07-06
 *          Time: 12:52
 */

//不可变列表
object Test05_List {
  def main(args: Array[String]): Unit = {
    //List默认为不可变集合
    //创建一个List是抽象的 不能new 使用伴生对象创建
    val list = List(12, 32, 43, 54, 64)
    println(list) //可以直接输出

    //访问元素
    println(list(1)) //32

    //但是不能修改
    //list(2) = 10

    //遍历
    list.foreach(println)

    //添加元素
    //追加在开头
    val list1 = list.+:(100)
    println(list1)
    //末尾追加
    val list2 = list.:+(100)
    println(list2)

    //List 双冒号
    val list3 = list.::(52,21)
    println(list3) //List((52,21), 12, 32, 43, 54, 64)

    //更多是利用双冒号 创建新的列表
    //Nil 表示空集合
    val list5 = Nil.::(12)
    println(list5)

    //也可以省略. 号
    val list6 = 32::Nil
    println(list6)

    //按照顺序创建List集合
    val list7 = 12::23::34::45::Nil
    println(list7) //List(12, 23, 34, 45)

    //列表的合并
    val list8 = list6 :: list7
    println(list8) //List(List(32), 12, 23, 34, 45)
    //三冒号 也叫扁平化 先拆为单个元素 在合并到一个集合当中
    val list9 = list6:::list7
    println(list9) //List(32, 12, 23, 34, 45)
    //++ 效果和 三冒号一样
    val list10 = list6 ++ list7
    println(list10)




  }
}
